﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Comunes;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class ProveedoresGestion : GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    private Proveedores proveedor = new Proveedores();    
    private ExceptionConstructor exNew = new ExceptionConstructor();
    private int Accion;
    GC2.Funciones.General.FunctionsSite f = new GC2.Funciones.General.FunctionsSite();
    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                CargarCombo();
                Accion = Convert.ToInt16(Session["Accion"].ToString());
                btnOtro.Visible = false;
                lblCuitMal.Visible = false;
                if (Accion > 1)
                {
                    proveedor = (Proveedores)Session["Proveedor"];
                    HidrataControles(proveedor);
                    if (Accion == 2)
                    {
                        lblAccion.Text = "Modificación";
                    }
                    else
                    {
                        lblAccion.Text = "Viendo Datos";
                    }
                }
                if (Accion == 1)
                {
                    lblAccion.Text = "Nuevo Proveedor";
                    txtSaldo.Text = "0";
                    FechaIng.SetFecha(DateTime.Now.Date);
                    FechaEstado.SetFecha(DateTime.Now.Date);
                }
            }
        }
        catch (Exception ex)
        {
            ErrorUI(ex);
        }

    }
    #endregion

    #region Botones

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNombre.Text == "")
                {
                    lblAccion.Text = "No se puede Guardar un Proveedor sin Nombre.";
                }
                else
                {
                    DesHidrataControles();
                }
            }
            catch (Exception ex)
            {
                ErrorUI(ex);
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            try
            {
                Response.Redirect("~/Seguridad/Default.aspx", false);
            }
            catch (Exception ex)
            {
                ErrorUI(ex);
            }    
        }

        protected void btnOtro_Click(object sender, EventArgs e)
        {
            try
            {
                Limpiar();
                btnOtro.Visible = false;
                btnGuardar.Enabled = true;
            }
            catch (Exception ex)
            {
                ErrorUI(ex);
            }
        }

    #endregion

    #endregion

    #region Métodos

    #region CargarCombo
    protected void CargarCombo()
    {
        try
        {
            List<Provincias> listaProvincias = ListaProvincias();
            foreach (Provincias provincia in listaProvincias)
            {
                ListItem liItem = new ListItem();
                liItem.Value = provincia.ProvCod.ToString();
                liItem.Text = provincia.Provincia;
                cboProvincia.Items.Add(liItem);
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region HidrataControles
    /// <summary>
    /// Hidrata Controles Proveedor
    /// </summary>
    /// <param name="titular"></param>
    private void HidrataControles(Proveedores proveedor)
    {
        try
        {
            txtNombre.Text = proveedor.Nombre;
            txtSaldo.Text = proveedor.Saldo.ToString();
            txtBanco1.Text = proveedor.Banco1;
            txtCuenta1.Text = proveedor.Cuenta1;
            txtBanco2.Text = proveedor.Banco2;
            txtCuenta2.Text = proveedor.Cuenta2;
            txtDireccion.Text = proveedor.Direccion;
            txtLocalidad.Text = proveedor.Localidad;
            cboProvincia.SelectedValue = proveedor.Id_Provincia.ToString();
            txtCodPostal.Text = proveedor.CodPostal;
            txtTe1.Text = proveedor.Te1;
            txtTe2.Text = proveedor.Te2;
            txtTe3.Text = proveedor.Te3;
            txtTe4.Text = proveedor.Te4;
            FechaIng.SetFecha(proveedor.FechaIng);
            FechaEstado.SetFecha(proveedor.FechaEstado);
            txtContacto.Text = proveedor.Contacto;
            cboEstado.SelectedValue = proveedor.Estado;
            txtEmail.Text = proveedor.Email;
            txtObs.Text = proveedor.Obs;
            if (proveedor.Cuit > 0)
            {
                string sTemp = proveedor.Cuit.ToString();
                txtCuit1.Text = sTemp.Substring(0, 2);
                txtCuit2.Text += sTemp.Substring(2, 8);
                txtCuit3.Text += sTemp.Substring(10, 1);
            }
        }
        catch (Exception ex)
        {
            ErrorUI(ex);
        }
    }
    #endregion

    #region DesHidrataControles
    /// <summary>
    /// DesHidrata Controles Proveedor
    /// </summary>
    /// <param name="titular"></param>
    private void DesHidrataControles()
    {
        try
        {
            BMProveedores bmProveedores = new BMProveedores(Connection);
            Accion = Convert.ToInt16(Session["Accion"].ToString());
            if (Accion > 1)
            {
                proveedor = (Proveedores)Session["Proveedor"];
            }
            proveedor.Nombre = txtNombre.Text;
            proveedor.Saldo = Convert.ToDecimal(txtSaldo.Text.Trim());
            proveedor.Banco1 = txtBanco1.Text;
            proveedor.Cuenta1 = txtCuenta1.Text;
            proveedor.Banco2 = txtBanco2.Text;
            proveedor.Cuenta2 = txtCuenta2.Text;
            proveedor.Direccion = txtDireccion.Text;
            proveedor.Localidad = txtLocalidad.Text;
            proveedor.Id_Provincia = Convert.ToInt16(cboProvincia.SelectedValue);
            proveedor.Provincia = cboProvincia.SelectedItem.Text;
            proveedor.CodPostal = txtCodPostal.Text;
            proveedor.Te1 = txtTe1.Text;
            proveedor.Te2 = txtTe2.Text;
            proveedor.Te3 = txtTe3.Text;
            proveedor.Te4 = txtTe4.Text;
            proveedor.FechaIng = FechaIng.GetFecha();
            proveedor.FechaEstado = FechaEstado.GetFecha();
            proveedor.Contacto = txtContacto.Text;
            proveedor.Estado = cboEstado.SelectedValue;
            proveedor.Email = txtEmail.Text;
            proveedor.Obs = txtObs.Text;

            if (txtCuit1.Text != "")
            {
                bool bCuit = true;
                if (!f.isNumeric(txtCuit1.Text) || txtCuit1.Text.Length != 2)
                {
                    bCuit = false;
                }
                if (!f.isNumeric(txtCuit2.Text) || txtCuit2.Text.Length != 8)
                {
                    bCuit = false;
                }
                if (!f.isNumeric(txtCuit3.Text))
                {
                    bCuit = false;
                }
                if (bCuit)
                {
                    string sTemp = txtCuit1.Text;
                    sTemp += txtCuit2.Text;
                    sTemp += txtCuit3.Text;

                    proveedor.Cuit = Convert.ToInt64(sTemp);
                    lblCuitMal.Visible = false;
                }
                else
                {
                    lblCuitMal.Visible = true;
                    return;
                }

            }
            if (Accion == 1)
            {
                proveedor = bmProveedores.BMProveedoresInsert(proveedor);
                lblAccion.Text = "Nuevo Proveedor Creado";
                btnGuardar.Enabled = false;
                btnOtro.Visible = true;
            }
            if (Accion == 2)
            {
                bmProveedores.BMProveedoresUpdate(proveedor);
                lblAccion.Text = "Proveedor Actualizado";
            }
        }
        catch (Exception ex)
        {
            ErrorUI(ex);
        }
    }
    #endregion

    #region Limpiar
    /// <summary>
    /// Limpia controles de Interfaz
    /// </summary>
    private void Limpiar()
    {
        try
        {
            txtNombre.Text = "";
            txtSaldo.Text = "0";
            txtBanco1.Text = "";
            txtCuenta1.Text = "";
            txtBanco2.Text = "";
            txtCuenta2.Text = "";
            txtDireccion.Text = "";
            txtLocalidad.Text = "";
            cboProvincia.SelectedValue = "0";
            txtCodPostal.Text = "";
            txtTe1.Text = "";
            txtTe2.Text = "";
            txtTe3.Text = "";
            txtTe4.Text = "";
            txtContacto.Text = "";
            txtEmail.Text = "";
            txtObs.Text = "";
            lblAccion.Text = "Nuevo Proveedor";

        }
        catch (Exception ex)
        {
            ErrorUI(ex);
        }
    }
    #endregion


#endregion
    
}
